
Page({
  data: {
    // 表单选项
    genderOptions: ['男', '女'],
    serviceTypeOptions: ['临时', '长期'],
    serviceCategoryOptions: [
      { name: '门诊陪诊', value: 'outpatient' },
      { name: '居家照护', value: 'homecare' }
    ],
    
    // 表单数据
    idCardImage: null,
    avatarUrl: null,
    formValid: false,
    
    // 协议内容
    agreementContent: `本协议明确平台与陪诊员为合作关系而非劳动关系...
    （此处为完整的协议内容，实际应用中应由法务提供）`
  },

  onLoad() {
    // 初始化表单验证
    this.checkFormValid();
  },

  // 选择身份证照片
  chooseIdCard() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          idCardImage: res.tempFilePaths[0]
        }, this.checkFormValid);
      }
    });
  },

  // 选择个人头像
  chooseAvatar() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          avatarUrl: res.tempFilePaths[0]
        }, this.checkFormValid);
      }
    });
  },

  // 查看协议
  viewAgreement() {
    wx.showModal({
      title: '陪诊员注册协议',
      content: this.data.agreementContent,
      showCancel: false
    });
  },

  // 检查表单是否有效
  checkFormValid() {
    // 实际应用中应根据所有必填字段是否填写来判断
    const valid = this.data.idCardImage && this.data.avatarUrl;
    this.setData({ formValid: valid });
  },

  // 表单提交
  formSubmit(e) {
    const formData = e.detail.value;
    
    // 验证必填字段
    if (!formData.name || !formData.phone || !formData.city) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none'
      });
      return;
    }
    
    // 验证服务分类至少选择一项
    if (!formData.serviceCategories || formData.serviceCategories.length === 0) {
      wx.showToast({
        title: '请至少选择一项服务分类',
        icon: 'none'
      });
      return;
    }
    
    // 验证协议是否同意
    if (!formData.agreementAccepted) {
      wx.showToast({
        title: '请同意注册协议',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载中
    wx.showLoading({
      title: '提交中...',
    });
    
    // 实际应用中这里应该调用后端API提交数据
    console.log('提交表单数据:', {
      ...formData,
      idCardImage: this.data.idCardImage,
      avatarUrl: this.data.avatarUrl
    });
    
    // 模拟API调用
    setTimeout(() => {
      wx.hideLoading();
      wx.showToast({
        title: '注册成功，等待审核',
        icon: 'success'
      });
      
      // 重置表单
      this.setData({
        idCardImage: null,
        avatarUrl: null,
        formValid: false
      });
      
      // 返回上一页
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }, 2000);
  }
});